home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 3: CDPD 3
/
Almathera Ten on Ten - Disc 3: CDPD3.iso
/
fish
/
001-100
/
001-025
/
013
/
sketchpad.bas
< prev
next >
Wrap
BASIC Source File
|
1995-03-17
|
4KB
|
120 lines
1 REM SKETCHPAD PROGRAM FOR THE AMIGA
2 REM
3 REM WRITTEN BY RICK SCHAEFFER [70120,174]
4 REM
5 REM TO DRAW, CLICK ON A COLOR AND GO FOR IT!
6 REM TO DRAW A LINE, FIRST SELECT A COLOR AND THEN CLICK ON "L"
7 REM AND THEN MOVE TO THE STARTING LOCATION FOR THE LINE...
8 REM THEN HOLD THE BUTTON DOWN WHILE DRAWING THE LINE.
9 REM
10 REM TO DRAW A BOX, DO LIKE A LINE EXCEPT CLICK ON "B".
11 REM TO DRAW AN ELIPSE, DO LIKE A BOX EXCEPT CLICK ON "E".
12 REM
13 REM TO FILL A SHAPE...FIRST CLICK ON THE DESIRED COLOR...
14 REM THEN CLICK ON "F"...
15 REM THEN MOVE THE POINTER INSIDE THE SHAPE TO FILL...
16 REM THEN CLICK THE MOUSE ONCE AND THE SHAPE WILL BE FILLED.
17 REM
18 REM TO CLEAR THE SCREEN, CLICK ON "C".
19 REM TO QUIT, CLICK ON "Q".
20 REM
200 OUTLINE 0
210 ASK WINDOW S1%,S2%
220 IF S1%>320 THEN SCREEN 0,4,0
230 ASK RGB 0,R0%,G0%,B0%
240 ASK RGB 1,R1%,G1%,B1%
250 WINDOW #1,0,0,320,240,"SKETCHPAD"
260 X1%=-1:Y1%=-1
270 GOSUB 470
280 ASK MOUSE X%,Y%,B%
290 X1%=X%:Y1%=Y%
300 IF B%=0 THEN 280
310 IF Y%<=10 AND B%=4 AND X%<160 THEN 320 ELSE 360
320 C=INT(X%*.1)
330 IF C<0 THEN C=0
340 PENA C
350 GOTO 280
360 IF Y%>10 THEN 430
370 IF X%>=192 AND X%<=199 AND B%=4 THEN SCNCLR:GOTO 270
380 IF X%>=272 AND X%<=279 AND B%=4 THEN 660
390 IF X%>=208 AND X%<=215 AND B%=4 THEN GOSUB 710:GOTO 280
400 IF X%>=224 AND X%<=231 AND B%=4 THEN GOSUB 850:GOTO 280
410 IF X%>=240 AND X%<=247 AND B%=4 THEN GOSUB 970:GOTO 280
420 IF X%>=256 AND X%<=263 AND B%=4 THEN GOSUB 1030:GOTO 280
430 DRAW(X1%,Y1% TO X%,Y%):X1%=X%:Y1%=Y%
440 ASK MOUSE X%,Y%,B%
450 IF B%=4 THEN 430
460 GOTO 280
470 CMD 1
480 OUTLINE 0
490 RGB 0,0,0,0
500 RGB 1,6,9,15
510 PRINT AT (25,0);INVERSE(1);"C";
520 PRINT AT (27,0);INVERSE(1);"L";
530 PRINT AT (29,0);INVERSE(1);"B";
540 PRINT AT (31,0);INVERSE(1);"F";
550 PRINT AT(33,0);INVERSE(1);"E";
560 FOR X=0 TO 15
570 PENA X
580 BOX(X*10,0;X*10+9,10),1
590 NEXT X
600 PRINT AT (35,0);INVERSE(1);"Q";INVERSE(0);" ";
610 PENA 0
620 BOX(288,0;288+9,10),1
630 PENA 0
640 OUTLINE 1
650 RETURN
660 CLOSE #1
670 RGB 0,R0%,G0%,B0%
680 RGB 1,R1%,G1%,B1%
690 IF S1%>320 THEN SCREEN 1,3,0
700 END
710 REM DRAW A LINE
720 ASK MOUSE X%,Y%,B%:IF B%=4 THEN 720
730 ASK MOUSE X%,Y%,B%:IF B%=0 THEN 730
740 X2%=X%:Y2%=Y%
750 X1%=X%:Y1%=Y%
760 DRAWMODE 2
770 ASK MOUSE X%,Y%,B%
780 IF B%=0 THEN DRAWMODE 0:DRAW(X1%,Y1% TO X2%,Y2%):RETURN
790 PENA 0
800 DRAW(X1%,Y1% TO X2%,Y2%)
810 PENA C
820 DRAW(X1%,Y1% TO X%,Y%)
830 X2%=X%:Y2%=Y%
840 GOTO 770
850 REM DRAW A BOX
860 ASK MOUSE X%,Y%,B%:IF B%=4 THEN 860
870 ASK MOUSE X%,Y%,B%:IF B%=0 THEN 870
880 X2%=X%:Y2%=Y%
890 X1%=X%:Y1%=Y%
900 DRAWMODE 2
910 ASK MOUSE X%,Y%,B%
920 IF B%=0 THEN DRAWMODE 0:PENO C:BOX(X1%,Y1% ; X2%,Y2%):PENO 0:RETURN
930 BOX(X1%,Y1% ; X2%,Y2%)
940 BOX(X1%,Y1% ; X%,Y%)
950 X2%=X%:Y2%=Y%
960 GOTO 910
970 REM FILL
980 ASK MOUSE X%,Y%,B%:IF B%=4 THEN 980
990 ASK MOUSE X%,Y%,B%:IF B%=0 THEN 990
1000 ASK MOUSE X%,Y%,B%:IF B%=0 THEN 1000
1010 PAINT (X%,Y%),1
1020 RETURN
1030 REM DRAW A CIRCLE
1040 ASK MOUSE X%,Y%,B%:IF B%=4 THEN 1040
1050 ASK MOUSE X%,Y%,B%:IF B%=0 THEN 1050
1060 CX%=X%:CY%=Y%
1070 X1%=X%:Y1%=Y%
1080 CA=0:CR=0
1090 DRAWMODE 2
1100 ASK MOUSE X%,Y%,B%
1110 IF B%=0 THEN DRAWMODE 0:PENO C:CIRCLE(CX%,CY%),CR,CA:PENO 0:RETURN
1120 CIRCLE(CX%,CY%),CR,CA
1130 REM DRAW THE NEW CIRCLE
1140 CX%=(X1%+X%)/2:CY%=(Y1%+Y%)/2
1150 CR=ABS(X1%-X%)/2
1160 IF ABS(X1%-X%)=0 THEN CA=1 ELSE CA=ABS(Y1%-Y%)/ABS(X1%-X%)
1170 CIRCLE(CX%,CY%),CR,CA
1180 GOTO 1100